#ifndef PARAMS_H
#define PARAMS_H

//Библиотека Qt.
#include <QMetaType>


//Параметры устройства.
namespace DevParam
{
	//Запрос на получение списка возможных значений параметра.
	enum GET_LIST_PARAM {
		//Основные параметры устройства.
		GET_LIST_INPUTS, GET_LIST_STANDARDS,
		GET_LIST_PIXFORMATS, GET_LIST_RESOLUTIONS,

		//Фильтр записи в файл.
		GET_LIST_FILEWRITER_FORMATS,

		//Фильтр видеокодека.
		GET_LIST_VIDEOCODEC_NAMES
	};

	//Запрос на получение текущего значения параметра.
	enum GET_PARAM {
		//Основные параметры устройства.
		GET_FILENAME, GET_DEVNAME, GET_DRIVERNAME,
		GET_INPUT, GET_STANDARD, GET_PIXFORMAT, GET_RESOLUTION,

		//Параметры буферизации устройства.
		GET_MAX_FRAMESCACHE, GET_FRAMESCACHE,
		GET_MAX_FRAMERATE, GET_FRAMERATE,

		//Цветовые настройки устройства.
		GET_BRIGHTNESS, GET_CONTRAST, GET_HUE, GET_SATURATION,

		//Параметры видеоокна устройства.
		GET_VIDEOWINDOW_CONNECTED,

		//Фильтр детектора движения.
		GET_MOTION_CONNECTED, GET_MOTION_ENABLED,
		GET_MOTION_TRESHOLD, GET_MOTION_SENSITIVE,
		GET_MOTION_NOISEREMOVING,

		//Фильтр видеокодека.
		GET_VIDEOCODEC_CURRENT,

		//Фильтр записи в файл.
		GET_FILEWRITER_ENABLED
	};

	//Запрос на установку текущего значения параметра.
	enum SET_PARAM {
		//Основные параметры устройства.
		SET_INPUT, SET_STANDARD, SET_PIXFORMAT, SET_RESOLUTION,

		//Параметры буферизации устройства.
		SET_FRAMESCACHE, SET_MAX_FRAMERATE, SET_FRAMERATE,

		//Цветовые настройки устройства.
		SET_BRIGHTNESS, SET_CONTRAST, SET_HUE, SET_SATURATION,

		//Параметры видеоокна устройства.
		SET_VIDEOWINDOW,

		//Фильтр детектора движения.
		SET_MOTION_CONNECTED,
		SET_MOTION_ENABLED, SET_MOTION_TEST_ENABLED,
		SET_MOTION_TRESHOLD, SET_MOTION_SENSITIVE,
		SET_MOTION_NOISEREMOVING,

		//Фильтр видеокодека.
		SET_VIDEOCODEC_CURRENT,

		//Фильтр записи в файл.
		SET_FILEWRITER_TRIGGER
	};
}

Q_DECLARE_METATYPE(DevParam::GET_LIST_PARAM)
Q_DECLARE_METATYPE(DevParam::GET_PARAM)
Q_DECLARE_METATYPE(DevParam::SET_PARAM)

#endif
